package com.br.extreme.StockService.services;

import java.math.BigDecimal;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import com.br.extreme.StockService.business.StockBusiness;
import com.br.extreme.StockService.model.OutProdutos;
import com.br.extreme.StockService.model.ProdutoDTO;

@Produces(MediaType.APPLICATION_JSON)
@Path("/stock")
public class StockService {

	@GET
	@Path("/consultar")
	public Response consultar(@QueryParam("barras") String barras){
		ProdutoDTO produto = new StockBusiness().buscarProduto(barras);
		return Response.ok(produto).build();
	}		

	@GET
	@Path("/listar")
	public Response listar(){
		List<ProdutoDTO> produtos = new StockBusiness().listar();
		OutProdutos out = new OutProdutos(produtos);
		return Response.ok(out).build();
	}
	
	@GET
	@Path("/cadastrar")	
	public Response cadastrar(@QueryParam("codigo")Integer codigo, @QueryParam("barras")String barras, @QueryParam("descricao") String descricao,
			@QueryParam("valor") BigDecimal valor, @QueryParam("quantidade") Double quantidade, @QueryParam("ncm") Integer ncm, @QueryParam("icms") Integer icms,
			@QueryParam("cfop") Integer cfop, @QueryParam("cst") Integer cst
			){
		ProdutoDTO produtoDTO = new ProdutoDTO();
		produtoDTO.setCodigo(codigo);
		produtoDTO.setBarras(barras);
		produtoDTO.setDescricao(descricao);
		produtoDTO.setValor(valor);
		produtoDTO.setQuantidade(quantidade);
		produtoDTO.setNcm(ncm);
		produtoDTO.setIcms(icms);
		produtoDTO.setCfop(cfop);
		produtoDTO.setCst(cst);
		
		new StockBusiness().cadastrar(produtoDTO );
		return Response.status(Status.OK).build();
	}
}
